package com.vcaresolution.logistic.service;

import java.io.Serializable;
import java.util.List;
import java.util.Map;
import java.util.Set;

import com.vcaresolution.logistic.form.BranchForm;
import com.vcaresolution.logistic.to.BranchTO;
import com.vcaresolution.logistic.to.DepartmentTO;



/**
 * <code>BranchService</code> is used to track all basic operations like add, update, delete, list and getByPk
 * 
 * @author Snehal Shah
 * @version 1.0
 * @since ShipSoft 1.0
 */

public interface BranchService {

	public void add(BranchForm branchForm);
	public void update(BranchForm branchForm);
	public void delete(BranchForm branchForm);
	public BranchTO findById(Serializable branchId);
	public List<BranchTO> findByAll();
	
	/**#editedByVishal*/
//	public <T> List<T> getAssociatedDepartmentList(Serializable branchId,Class<T> returnType);
	public <T> List<T> getAssociatedDepartmentList(Serializable branchId);
	public Map<String, ? extends Object> getAssociatedDepartmentList(Set<Integer> branchIdSet);
//	public List<DepartmentTO> getAssociatedDepartmentList(Serializable branchId);
	
}
